home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / lisp / utils / blessmail.el.z / blessmail.el
Encoding:
Text File  |  1998-05-21  |  2.5 KB  |  72 lines

  1. ;;; blessmail.el --- Decide whether movemail needs special privileges.
  2.  
  3. ;; Copyright (C) 1994 Free Software Foundation, Inc.
  4.  
  5. ;; Maintainer: FSF
  6. ;; Keywords: internal
  7.  
  8. ;; This file is part of XEmacs.
  9.  
  10. ;; XEmacs is free software; you can redistribute it and/or modify it
  11. ;; under the terms of the GNU General Public License as published by
  12. ;; the Free Software Foundation; either version 2, or (at your option)
  13. ;; any later version.
  14.  
  15. ;; XEmacs is distributed in the hope that it will be useful, but
  16. ;; WITHOUT ANY WARRANTY; without even the implied warranty of
  17. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  18. ;; General Public License for more details.
  19.  
  20. ;; You should have received a copy of the GNU General Public License
  21. ;; along with XEmacs; see the file COPYING.  If not, write to the Free
  22. ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  23. ;; 02111-1307, USA.
  24.  
  25. ;;; Synched up with: FSF 19.34.
  26.  
  27. ;;; Commentary:
  28.  
  29. ;; This is loaded into a bare Emacs to create the blessmail script,
  30. ;; which (on systems that need it) is used during installation
  31. ;; to give appropriate permissions to movemail.
  32. ;;
  33. ;; It has to be done from lisp in order to be sure of getting the
  34. ;; correct value of rmail-spool-directory.
  35.  
  36. ;;; Code:
  37.  
  38. ;; These are no longer needed because we run this in emacs instead of temacs.
  39. ;; (message "Using load-path %s" load-path)
  40. ;; (load "paths.el")
  41. ;; It is not safe to load site-init.el here, because it might have things in it
  42. ;; that won't load properly unless all the rest of Emacs is loaded.
  43.  
  44. (let ((dirname (directory-file-name rmail-spool-directory))
  45.       linkname attr modes)
  46.   ;; Check for symbolic link
  47.   (while (setq linkname (file-symlink-p dirname))
  48.     (setq dirname (if (file-name-absolute-p linkname)
  49.               linkname
  50.             (concat (file-name-directory dirname) linkname))))
  51.   (insert "#!/bin/sh\n")
  52.   (setq attr (file-attributes dirname))
  53.   (if (not (eq t (car attr)))
  54.       (insert (format "echo %s is not a directory\n" rmail-spool-directory))
  55.     (setq modes (nth 8 attr))
  56.     (cond ((= ?w (aref modes 8))
  57.        ;; Nothing needs to be done.
  58.        )
  59.       ((= ?w (aref modes 5))
  60.        (insert "chgrp " (number-to-string (nth 3 attr))
  61.            " $* && chmod g+s $*\n"))
  62.       ((= ?w (aref modes 2))
  63.        (insert "chown " (number-to-string (nth 2 attr))
  64.            " $* && chmod u+s $*\n"))
  65.       (t
  66.        (insert "chown root $* && chmod u+s $*\n"))))
  67.   (insert "echo mail directory = " dirname "\n"))
  68. (write-region (point-min) (point-max) "blessmail")
  69. (kill-emacs)
  70.  
  71. ;;; blessmail.el ends here
  72.